import {
  Column,
  CreateDateColumn,
  Entity,
  JoinColumn,
  OneToOne,
  PrimaryGeneratedColumn,
  UpdateDateColumn,
} from 'typeorm';
import { MovieEntity } from './movie.entity';

@Entity('movie_statistics')
export class MovieStatisticsEntity {
  // movie_id作为主键和外键
  @PrimaryGeneratedColumn({ type: 'int' })
  movie_id: number;

  // 下载计数，默认值为0
  @Column({ type: 'int', default: 0 })
  download_count: number;

  // 点赞计数，默认值为0
  @Column({ type: 'int', default: 0 })
  like_count: number;

  // 创建时间
  @CreateDateColumn()
  created_at: Date;

  // 更新时间
  @UpdateDateColumn()
  updated_at: Date;

  // 一对一关系：一个统计记录对应一个电影
  @OneToOne(() => MovieEntity, {
    onDelete: 'CASCADE', // 删除电影时级联删除统计记录
    onUpdate: 'CASCADE', // 更新电影id时级联更新统计记录
  })
  @JoinColumn({ name: 'movie_id' })
  movie: MovieEntity;
}
